home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / dl_exsrc.zoo / memavail.c < prev    next >
C/C++ Source or Header  |  1994-07-03  |  658b  |  26 lines

  1. #include <unistd.h>
  2. #include <osbind.h>
  3. #include "membook.h"
  4.  
  5. long memavail()
  6. {
  7.   register struct mem_chunk *r = &_mchunk_free_list;
  8.   register unsigned long maxsize = 0, memfree;
  9.   register int pagesize;
  10.  
  11.   for (; r; r = r->next)
  12.     if (r->size > maxsize)
  13.       maxsize = r->size;
  14.  
  15.   if (Sversion() >= 0x1900)    /* GEMDOS version >= 0.19, use Mxalloc() */
  16.     memfree = Mxalloc(-1L, 2);
  17.   else                /* GEMDOS version < 0.19, use Malloc() */
  18.     memfree = Malloc(-1L);
  19.   pagesize = getpagesize();
  20.   memfree = (memfree/pagesize) * pagesize;
  21.   if (memfree > maxsize)
  22.     maxsize = memfree;
  23.  
  24.   return maxsize - sizeof(struct mem_chunk);
  25. }
  26.